package com.ashlikun.core.listener

import android.view.View
import com.ashlikun.core.BaseUtils
import com.ashlikun.loadswitch.ContextData
import com.ashlikun.loadswitch.LoadSwitchService
import com.ashlikun.loadswitch.OnLoadSwitchClick

/**
 * 作者　　: 李坤
 * 创建时间: 2024/9/6　13:42
 * 邮箱　　：496546144@qq.com
 *
 * 功能介绍：
 */
interface BaseWindow : IBaseWindow, OnLoadSwitchClick {
    /**
     * 获取需要转化为[LoadSwitchService]的控件
     *
     * @return
     */
    val switchRoot: View?

    /**
     * 获取自动切换加载中布局的管理器
     */
    val switchService: LoadSwitchService?
        get() = null

    /**
     * 显示不同的界面布局 监听器
     */
    val onLoadSwitchClick: OnLoadSwitchClick
        get() = this

    /**
     * 显示加载中布局
     *
     * @param data
     *  @param isForce 是否强制一定显示
     */
    fun showLoading(data: ContextData, isForce: Boolean = false)

    /**
     * 初始化布局切换的管理器
     */
    fun initLoadSwitch()

    /**
     * 显示重新加载页面
     *
     * @param data
     */
    fun showRetry(data: ContextData)

    /**
     * 显示内容页面
     */
    fun showContent()

    /**
     * 显示空页面
     *
     * @param data
     */
    fun showEmpty(data: ContextData)
    override fun onRetryClick(data: ContextData) {}
    override fun onEmptyClick(data: ContextData) {}
    fun createSwitchLayoutListener() = BaseUtils.createSwitchLayoutListener(this)

}